package com.bifang.core.quartz.integration;

import com.github.pagehelper.PageInfo;
import com.bifang.common.vo.BaseVO;
import com.bifang.common.vo.QrtzDetailsVO;
import com.bifang.common.vo.QuartzVO;

/** 定时任务管理 */
public interface QuartzIntegration {
    /** 获取定时任务基本信息 */
    QrtzDetailsVO getQuartzDetail(QrtzDetailsVO qrtzDetailsVO);
    /** 查询定时任务列表 */
    PageInfo<QrtzDetailsVO> getQuartzList(QrtzDetailsVO qrtzDetailsVO);
    /** 添加定时任务 */
    QrtzDetailsVO addJob(QuartzVO quartzVO);
    /** 修改任务 */
    QrtzDetailsVO updateJob(QuartzVO quartzVO);
    /** 删除一个任务 */
    void deleteJob(QuartzVO quartzVO);

    /** 启动所有任务 */
    void startJobs(BaseVO baseVO);
    /** 关闭所有定时任务 */
    void shutdownJobs(BaseVO baseVO);
    /** 暂停所有任务 */
    void pauseAll(BaseVO baseVO);
    /** 恢复所有定时任务 */
    void resumeAll(BaseVO baseVO);
    /** 暂停一个任务 */
    QrtzDetailsVO pauseJob(QuartzVO quartzVO);

    /** 恢复一个任务 */
    QrtzDetailsVO resumeJob(QuartzVO quartzVO);

    /** 立即执行一次任务 */
    QrtzDetailsVO triggerJob(QuartzVO quartzVO);
    /** 获取触发器当前状态 */
    String getTriggerState(QuartzVO quartzVO);
    /** 重置错误状态触发器 */
    QrtzDetailsVO resetTriggerFromErrorState(QuartzVO quartzVO);
}
